Many modern computerized devices include an implementation of software and/or hardware that operates to provide a graphical user interface (GUI) that allows a human user to interact with and use the functionality of such computerized devices. By way of example, the majority of personal computers and workstations in use today are controlled via a graphical windowing interface or similar environment that is typically part of the operating system the execute to control these computer systems. As another example, a handheld computing device such as a palm-top personal digital assistant (PDA) provide a fairly simple windowing interface providing a user touch pad access to functions of the device. In both cases, the windowing interface provides a fairly consistent set of features and windowed views that allows a user to operate different software applications in a consistent manner.
As a specific example of this consistency, most graphical user interfaces provide the ability for a user to operate a software application within a window that the operating system displays on an output device, such as an LCD display or screen that is part of the computer system, when the user invokes the software application. The window typically provides four sides that may be resizable to allow a user of the software application to alter the screen size of the window. The window may also include such features as horizontal and vertical scrollbars allowing the user of the software application to scroll information (e.g., the contents of the software application) up and down or left and right within the window. The window may also provide one or more pull-down menus that the user may select with an input device such as a mouse, which causes the menu to expose a number of menu choices for selection by the user. The window may further include a title bar that displays a heading or a title for the software application or operating system function that is performing within the window. The title bar might be a standardized feature in all window constructs and might include one or more operable buttons or icons that allow a user to minimize or maximize the view of the window and its entire contents. Other standard window features may exist as well.
Generally, the features or “constructs” that make up a window appear the same or quite similar for each different software application that operates on the computer system. Differences from one window to another might include the addition or removal of certain constructs which may or may not be needed in a particular window. For example, if a user sizes a window appropriately, there may be no need to display a horizontal scrollbar construct in the window since the user can completely view the contents of the window in the horizontal direction. As another example, some windows might include different pull-down menu constructs as opposed to others, depending upon the functionality that a software application provides within the window. Generally however, the same constructs associated with one window, such as scroll bars, pull down menus, resizable window edges, title bars, and the like operate and appear the same in other windows. This is because developers of software applications use a common set of prepackaged or “canned” constructs that completely encapsulate the functionality of, for example, a horizontal scroll bar. Graphical user interface developers thus purposefully intend for the operation of window constructs to be the same from one application to another in order to provide a consistent “look and feel” for operation of the graphical user interface.
Graphical user interface system developers have supplied software application developers with graphical user interface “toolkits” for use in the creation of windowed software applications. Such toolkits provide a standard set or palette of constructs, sometimes called a “widget library.” A widget library is basically a set of predefined objects containing construct definitions from which a graphical user interface designer can select for use in the creation and implementation of graphical user interface-based software applications. For example, a toolkit might provide menu and scrollbar widget libraries for selecting different types of menu constructs (pull-down, cascading, etc.) and scrollbar constructs (horizontal and vertical) for use in an application. A software developer can incorporate widget objects into the software application under development in order to provide the graphical user interface operations for the application.
A single widget object for a particular window construct, such as a scrollbar widget object, defines the complete “look and feel” or view of the scrollbar construct during operation and also defines all aspects of the operation and event handling characteristics for the scrollbar. In other words, a scrollbar widget defines the complete context for how an application renders and operates a scrollbar construct based on the scrollbar widget. A single scrollbar widget encapsulates all functionality related to scrollbar event interception, delivery and processing functionality, as well as scrollbar layout and view management functionality which the scrollbar construct provides during user operation of the scrollbar in the application in which the scroll bar is incorporated. Other widgets for different constructs encapsulate all of this information as well for those constructs.
Examples of commercially available graphical user interface development platforms (e.g., toolkits) which provide various types of widget libraries include the “Abstract Windowing Toolkit” (AWT), “Javabeans”, “Swing”, and others. A brief discussion of these toolkits and their associated features can be found in the provisional patent application from which the present application claims the benefit of the filing date and which is incorporated by reference above. Generally, graphical user interface-based software applications which software developers create with such toolkits are intended to conform to a Write Once Run Anywhere (WORA) paradigm which attempts to allow the applications to appear and operate consistently from one computing platform (e.g., a personal computer or workstation) to another (e.g., a handheld computing device).
Aside from toolkits, other window-based software application development environments provide other techniques in which a window can be enabled with constructs such as scrollbars, menus, and the like. For example, in an operating system such one of the Microsoft Windows series of operating systems (Windows 95, 98, 2000, NT and CE, which are each trademarks of Microsoft Corporation), manufactured by Microsoft Corporation of Redmond, Wash., USA, a software application can provide a window with a scrollbar by invoking an operating system function call to create a window with a scrollbar parameter or flag set to true. The scroll bar parameter causes the window to be rendered with the appropriate scroll bar. The create window system call can include other parameters that may be set or unset to specify what other standard constructs can be included in the window as well. For example, parameters can be provided to include a title bar, various menus, and the like.